<?php
/*
	插件增删查改
*/
defined('BY_JYA') or exit('error');
global $_RQ,$_AR;
$_RQ['op']=$_RQ['op']?$_RQ['op']:'list';
$result=array();
if($_RQ['op']=='list'){
	//搜索
	$params=array();
	if($_RQ['title']){
		$params['title']=$_RQ['title'];
		
	}
	if($_RQ['page']){
		$params['page']=$_RQ['page'];
	}
	$result=cloud_request('plugin.plugin.list',$params);
	foreach($result['list'] as &$item){
		$item['look']=array('plugin'=>$item['name'],'action'=>'basic.module_home','title'=>'查看效果');
	}
	//页面显示设置
	$htmls=array(
		'type'=>'list',
		'tabs'=>array(
			'0'=>array('op'=>'list','title'=>'插件列表'),
		),
		'list'=>array('data'=>'list','html_to'=>'list_html','delall'=>false,'del_message'=>'删除插件会同时删除插件所属页面、数据表、接口等数据，删除后不可恢复！是否确定要删除？','edit'=>false,'list'=>array(
			array('name'=>'name','title'=>'插件标识','type'=>'string'),
			array('name'=>'title','title'=>'插件名称','type'=>'string'),
			array('name'=>'look','title'=>'查看效果','type'=>'href'),
			//array('op'=>'download','title'=>'下载插件','type'=>'post','show'=>array('success',1)),
		),'action'=>array(
			array('type'=>'href','action'=>'plugin','op'=>'edit','title'=>'管理'),
		)),
		'search_one'=>array('name'=>'title','add_op'=>'add'),
	);
	$result['htmls']=$htmls;
	exi($result);
}
if($_RQ['op']=='add'){
	$result=cloud_request('plugin.plugin.edit',array());
	$result['receives']=get_receive_types('id','title');
	$htmls=array(
		'type'=>'edit',
		'post'=>'post',
		'desc'=>'设置页面信息',
		'tabs'=>array(
			array('op'=>'list','title'=>'插件列表'),
		),
		'edit'=>array(
			array('type'=>'string','title'=>'插件标识','name'=>'name','help'=>'设置插件标识，仅支持英文大小写字母、数字、下划线'),
			array('type'=>'string','title'=>'插件名称','name'=>'title', 'help'=>'设置插件名称，20字以内' ),
			array('type'=>'switch','title'=>'是否需要支付功能','name'=>'pay','help'=>'如果选择是，系统会自动添加支付结果处理方法（该方法审核支付结果，并将第三方支付单号存入数据库），您只需在接下来指定订单数据表（该数据表至少需包含两个字段：id、transaction_id和fee，id为发起支付时传递给系统的订单ID，transaction_id用来保存第三方支付单号，fee为支付金额）即可' ),
			array('type'=>'string','title'=>'指定订单数据表','name'=>'order_table' , 'help'=>'指定订单数据表（数据表名由表前缀+插件标识+应用标识），此处只需填写订单数据表的应用标识即可'),
			array('type'=>'radio','title'=>'插件类型','name'=>'type','options'=>'types'),
			array('type'=>'checkbox','title'=>'特殊消息订阅','name'=>'receive','options'=>'receives','help'=>'设置要订阅的消息类型,不设置默认不订阅' ),
			array('type'=>'text','title'=>'功能说明','name'=>'description','help'=>'描述插件主要功能和特点' ),
		)
	);
	$result['htmls']=$htmls;
	exi($result);
}
if($_RQ['op']=='edit'){
	if($_RQ['id']){
		$_SESSION['plugin_id']=intval($_RQ['id']);
	}
	$params=array('id'=>$_SESSION['plugin_id']);
	$result=cloud_request('plugin.plugin.edit',$params);
	$result['receives']=get_receive_types('id','title');
	if($result['item']['id']){
		$_SESSION['plugin_name']=$result['item']['name'];
		$read=true;
	}else{
		$read=false;
	}
	$menu=array(
		'0'=>array('title'=>'基本设置','fa'=>'fa-gear','child'=>array(
			array(
				'title'=>'插件设置',
				'action'=>'plugin',
				'op'=>'edit'
			),
			array(
				'title'=>'更换插件',
				'action'=>'plugin',
				'op'=>'list'
			),
			array(
				'title'=>'查看效果',
				'action'=>'basic.module_home',
				'plugin'=>$result['item']['name'],
			),
			array(
				'title'=>'代码编辑',
				'action'=>'plugin.edit_code',
			),
		)),
		'1'=>array('title'=>'页面管理','fa'=>'fa-gear','child'=>array(
			'0'=>array(
				'title'=>'客户端页面',
				'action'=>'plugin.cpage',
			),
			'1'=>array(
				'title'=>'管理端页面',
				'action'=>'plugin.page',
			),
		)),
		'2'=>array('title'=>'数据管理','fa'=>'fa-gear','child'=>array(
			array(
				'title'=>'数据结构',
				'action'=>'plugin.table',
			),
			
		)),
		'3'=>array('title'=>'第三方对外','fa'=>'fa-gear','child'=>array(
			array(
				'title'=>'对外链接',
				'action'=>'plugin.link',
			),
			array(
				'title'=>'对外接口',
				'action'=>'plugin.func',
			),
			array(
				'title'=>'数据类型',
				'action'=>'plugin.field',
			),
		)),
	);
	set_html('menu',$menu);
	$htmls=array(
		'type'=>'edit',
		'post'=>'post',
		'desc'=>'设置页面信息',
		'tabs'=>array(
			array('op'=>'edit','title'=>'页面信息'),
		),
		'edit'=>array(
			array('type'=>'string','title'=>'插件标识','name'=>'name','help'=>'设置插件标识，仅支持英文大小写字母、数字、下划线','read'=>$read),
			array('type'=>'string','title'=>'插件名称','name'=>'title', 'help'=>'设置插件名称，20字以内' ),
			array('type'=>'switch','title'=>'是否需要支付功能','name'=>'pay','help'=>'如果选择是，系统会自动添加支付结果处理方法（该方法审核支付结果，并将第三方支付单号存入数据库），您只需在接下来指定订单数据表（该数据表至少需包含两个字段：id、transaction_id和fee，id为发起支付时传递给系统的订单ID，transaction_id用来保存第三方支付单号，fee为支付金额）即可' ),
			array('type'=>'string','title'=>'指定订单数据表','name'=>'order_table' , 'help'=>'指定订单数据表（数据表名由表前缀+插件标识+应用标识），此处只需填写订单数据表的应用标识即可'),
			array('type'=>'radio','title'=>'插件类型','name'=>'type','options'=>'types'),
			array('type'=>'checkbox','title'=>'特殊消息订阅','name'=>'receive','options'=>'receives','help'=>'设置要订阅的消息类型,不设置默认不订阅' ),
			array('type'=>'text','title'=>'功能说明','name'=>'description','help'=>'描述插件主要功能和特点' ),
		)
	);
	$result['htmls']=$htmls;
	exi($result);
}
if($_RQ['op']=='post'){
	
	$postdata=get_postdata();
	$params=array('postdata'=>base64_encode(json_encode($postdata)));
	$result=cloud_request('plugin.plugin.post',$params);
	exi($result);
}
if($_RQ['op'] == 'del'){
	$params=array();
	if($_RQ['id']){
		$params['id']=intval($_RQ['id']);
	}
	if($_RQ['del']){
		$params['del']=trim($_RQ['del']);
	}
	$result=cloud_request('plugin.plugin.del',$params);
	exi($result);
}
//代码生成
if($_RQ['op']=='made'){
	$id=intval($_RQ['id']);
	$params=array('id'=>$id);
	$result=cloud_request('plugin.plugin.made',$params);
	exi($result);
}
